System and method for augmented reality content delivery in pre-captured environments

ABSTRACT

This disclosure describes systems and methods for augmented reality (AR) content delivery in pre-captured environments. In one embodiment, an AR client gathers information about the physical environment with the help of sensors embedded within an AR headset. The client reconstructs a 3D model of the physical environment from the gathered information and sends it to an AR content server. Based on the 3D reconstruction information obtained at the AR content server, the server modifies the content. AR content server compares the AR content against the 3D reconstruction data and does a visibility analysis of the AR content. Based on the visibility analysis, the AR elements occluded by real objects are removed to reduce the data size of the AR content. Finally, the AR content server streams the modified content to the AR client and the AR client renders the content and sends it to the headset.

CROSS-REFERENCE To RELATED APPLICATIONS

The present application is a non-provisional filing of, and claims benefit under 35 U.S.C. § 119(e) from, U.S. Provisional Patent Application Ser. No. 62/453,317, filed Feb. 1, 2017, entitled “System and Method for Augmented Reality Content Delivery in Pre-Captured Environments”, which is hereby incorporated by reference in its entirety.

BACKGROUND

Storing digital media in the cloud enables accessibility from anywhere in the world as long as a client has an internet connection. Digital media with greater levels of realism are encoded using high-resolution formats which demand large file sizes. Transporting this information (e.g., streaming the digital media to a client device) requires a proportionally large allocation of communication resources. Visually rich virtual reality (VR) content and augmented reality (AR) content both consume large amounts of data which is problematic for AR and VR content delivery. The limited bandwidth of the data connections between services delivering the content and clients consuming the content is a major bottleneck.

For example, spherical videos employed by cinematic VR technologies increase the video resolution requirements for on-line video feeds by a great deal. In cinematic VR, the transmitted video stream contains not only all the pixels seen on the screen, as is the case with a normal 2D video, but a full 360-degree field of pixels from a single view point. When cinematic VR content is consumed, only a small area of the whole video content is visible at any given point in time. This smaller cropped area of the full spherical view displayed on the client device needs to provide a full HD (i.e., 1080p) resolution for the viewing experience to match that offered by high resolution 2D video used today. When comparing monoscopic 360-degree spherical video to stereoscopic 360-degree 3D spherical video (in which separate image feeds are needed for separate eyes) the bandwidth required for content delivery becomes a major bottleneck. Next generation immersive content formats—that not only provide a full 360-degree stereoscopic view from a single viewpoint, but also allow a user to move within a limited area inside the content—will consume exponentially more information communication resources.

The ability to move within VR spaces is not the only driver behind these next generation format sizes, as the next generation of AR display technologies would preferably exhibit the same levels of spatial realism. Current content streaming methods used for delivering AR and VR experiences rely on traditional data transfer optimization techniques (e.g., spatial 2D image pixel compression and temporal motion compensation). The traditional techniques to data compression do not account for the nuances of AR use cases and may be improved.

SUMMARY

Systems and methods are described herein for selectively providing augmented reality (AR) information to an AR display client device. In some embodiments, bandwidth used to provide AR information to the client device may be reduced by selectively transmitting to the client device only those AR content elements whose appearance would not be obscured by physical objects in the AR viewing location.

For example, in one embodiment, a system (such as an AR content server) determines a location of an AR display device within an AR viewing environment. For at least a first element of AR content (such as a video or an AR object), the system selects a display location within the AR viewing environment. The system determines whether any physical object in the AR viewing environment is positioned along a line of sight between the AR display device and the display location of the first element. The system transmits the first element of AR content to the AR display device only in response to a determination that no physical object is along the line of sight. The system may process several elements of AR content with different display locations (including elements that may be in motion and thus have variable display locations) and may send to the AR display device only those elements with positions that are not obstructed by physical objects, from the perspective of the AR display device. In some embodiments, the AR element may be a portion of an AR object or video, such that unobscured portions of that object or video are sent to the client while obscured portions are not sent.

An exemplary method may be carried out by an AR headset according to an embodiment. The method includes obtaining a digitally reconstructed three-dimensional (3D) environment of an augmented reality (AR) viewing location, detecting an object in the digitally reconstructed 3D environment, determining a depth and a geometry of the object, sending a request for an augmented reality (AR) content stream to a server, the request including information indicating the depth and the geometry of the object, and receiving the AR content stream from the server, the AR content stream excluding AR content occluded by the object.

The method further includes, according to an embodiment, determining the AR viewing location using one or more of global positioning system (GPS) data, wireless data, and image recognition. In one embodiment, the digitally reconstructed 3D environment is obtained via one or more of a stored a previous AR session, a combination of stored data with data collected in real-time, or a point cloud of depth data.

In another embodiment, the digitally reconstructed 3D environment can be obtained via scanning the AR viewing location by inspecting it from several viewpoints.

In one embodiment, the method also includes tracking a point-of-view position and an orientation within the digitally reconstructed 3D environment.

In one embodiment, the information indicating the depth and the geometry of the object includes one or more of real-time raw sensor data, a depth map of the object, or an RGB-D data stream.

In one embodiment, the type of AR content requested is immersive video, and the information indicating the depth and the geometry of the at least one real-world object is formatted as a spherical depth map of the real-world AR viewing location.

Another embodiment is directed to an augmented reality (AR) content server including a processor, a communication interface, and data storage. In the embodiment, the AR content server is configured to receive a request for AR content via the communication interface, obtain, from the data storage, the requested AR content, obtain a digitally reconstructed three-dimensional (3D) environment of an AR viewing location, receive via the communication interface a point-of-view position and orientation from within AR viewing location, perform a visibility analysis via a comparison of the requested AR content with the digitally reconstructed 3D environment and the point-of-view position and orientation, and modify the requested AR content by removing data associated with one or more objects not visible from the point-of-view position and orientation according to the visibility analysis.

According to one embodiment, the digitally reconstructed 3D environment can be obtained from one or more of the data storage, an augmented reality (AR client), or a combination of the data storage and the AR client.

In another embodiment, or in a same embodiment, the modification of the requested AR content can be a function of a content type of the requested AR content, wherein the content type includes one or more of a three-dimensional (3D) scene, a light field, or immersive video with depth data.

Additionally, in one or more embodiments, the modified requested AR content can include an insert of previously removed three-dimensional (3D) objects within the requested AR content based on an updated point-of-view position and orientation.

In one embodiment, the visibility analysis includes identifying where the digitally reconstructed 3D environment has smaller depth values than the depth data associated with the requested AR content.

Another embodiment is directed to a method including receiving a request for an augmented reality (AR) content video stream, obtaining, from a data storage, the requested AR content video stream, obtaining a digitally reconstructed 3D environment of a real-world AR viewing location, receiving a point-of-view position and orientation from an AR client in the real-world AR viewing location, analyzing the digitally reconstructed 3D environment and the point-of-view position and orientation to determine whether the requested AR content video stream includes one or more objects occluded in the digitally reconstructed 3D environment, and

removing the one or more objects that are occluded in the digitally reconstructed 3D environment.

In one embodiment, the method includes sending the modified AR content video stream to an AR display device.

In one embodiment, the analyzing the digitally reconstructed 3D environment and the point-of-view position and orientation includes determining a location of the AR display device, identifying one or more physical objects in the digitally reconstructed 3D environment as along a line of sight determined from the point-of-view position and orientation of the AR display device, and determining whether the one or more objects in the AR content video stream are occluded by the one or more physical objects based on the line of sight.

In one embodiment, the analyzing the digitally reconstructed 3D environment and the point-of-view position and orientation includes comparing depth values of the digitally reconstructed 3D environment with depth values of in the AR content video stream, and discarding portions of the AR content video stream with larger depth values than the corresponding depth values in the digitally reconstructed 3D environment to compensate for occlusions caused by one or more dynamic objects and/or static objects missing from the digitally reconstructed 3D environment.

In one variation of embodiments herein, the client is aware of the content type that it is requesting from the server and based on that, can provide environmental information in as compact format as possible. For example, for immersive video, the client could instead of sending the whole environment model, just send spherical depth map of the environment rendered from the viewpoint used at the moment.

In one variation of embodiments herein, the AR client device does not perform point-of-view and orientation tracking, but instead an external outside-looking-in tracking solution is employed. In a first further variation, the AR client device receives tracking information first from the external tracking solution, transforms it into the same coordinate system as is used in the 3D reconstruction, and then sends it to the content server. In a second further variation, the external tracking solution transforms the point-of-view and orientation into the same coordinate system as is used in the 3D reconstruction, and then sends it to the content server. In a third further variation, the AR content server receives tracking information from the external tracking solution and the server transforms it into the same coordinate system as is used in the 3D reconstruction.

In one variation of embodiments herein, the AR content server produces depth information for light fields once light field data has been uploaded to the server. During run-time, when a request for light field content is received by the AR content server, the content can be modified more efficiently by using the depth information already produced earlier (removing the need to perform the depth detection during content delivery).

Any of the embodiments, variations, and permutations described in the ensuing paragraphs and anywhere else in this disclosure can be implemented with respect to any embodiments, including with respect to any method embodiments and with respect to any system embodiments.

The disclosed systems and methods can reduce amounts of data required to be transmitted between an AR content service and a viewing client device significantly in many on-line AR content delivery use cases. The reduction is based on the physical characteristics of the environment wherein the client is consuming the content, and can be performed on a per client basis. This solution can be combined with other traditional data compression methods, thus providing further content delivery optimization without compromising the benefits achievable with traditional content delivery compression techniques.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views, together with the detailed description below, are incorporated in and form part of the specification and serve to further illustrate embodiments of concepts that include the claimed invention and to explain various principles and advantages of those embodiments.

FIG. 1 is a visual overview of a method for AR content delivery in pre-captured environments, in accordance with at least one embodiment.

FIG. 2 is a flow chart of a method, carried out by an AR client, for AR content delivery in pre-captured environments, in accordance with at least one embodiment.

FIG. 3 is a flow chart of a method, carried out by an AR content server, for AR content delivery in pre-captured environments, in accordance with at least one embodiment.

FIG. 4 is a sequence diagram of a method for AR content delivery in pre-captured environments, in accordance with at least one embodiment.

FIG. 5 is a schematic perspective view of a user in an example real-world AR viewing location, in accordance with at least one embodiment.

FIG. 6 is a plan view of a digitally reconstructed 3D environment, in accordance with at least one embodiment.

FIG. 7 is a plan view of a requested AR content and the digitally reconstructed 3D environment of FIG. 6, in accordance with at least one embodiment.

FIG. 8 is a plan view schematically illustrating a visibility analysis performed on the requested AR content of FIG. 7, in accordance with at least one embodiment.

FIG. 9 is a plan view schematically illustrating modified AR content and the digitally reconstructed 3D environment of FIG. 6, in accordance with at least one embodiment.

FIG. 10 is a schematic perspective view illustrating the modified AR content of FIG. 9, as seen by the user of FIG. 5, in accordance with at least on embodiment.

FIG. 11 illustrates an exemplary wireless transmit/receive unit (WTRU) that may be employed as an AR client viewer in some embodiments.

FIG. 12 illustrates an exemplary network entity that may be employed as an AR content server or may be used as AR content storage in some embodiments.

Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.

The apparatus and method components have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.

DETAILED DESCRIPTION

Before proceeding with this detailed description, it is noted that the entities, connections, arrangements, and the like that are depicted in—and described in connection with—the various figures are presented by way of example and not by way of limitation. As such, any and all statements or other indications as to what a particular figure “depicts,” what a particular element or entity in a particular figure “is” or “has,” and any and all similar statements—that may in isolation and out of context be read as absolute and therefore limiting—can only properly be read as being constructively preceded by a clause such as “In at least one embodiment, . . . .”

Disclosed herein are methods and systems for augmented reality content delivery in pre-captured environments. This disclosure relates to content data transfer between an augmented reality (AR) content server and an AR client (e.g., an AR client running on an AR device, such as an optical see-through AR headset or a video see-through AR headset). Exemplary methods described herein make use of client devices providing information to the AR content server about the environment in which the augmented content is to be displayed. The AR content server adjusts AR content delivery based on the environmental characteristics of each individual client so that redundant data, which would not be visible to a specific client, is removed from the content stream transmitted a client.

In an exemplary embodiment, at the beginning of an AR session, the AR client device reconstructs a digital model of the present 3D environment. The generation of the model may employ previously-collected data corresponding to the same location. In other cases, the model is made by scanning the environment with sensors (such as RGB-D or other depth sensors) built into the AR client device. Combinations of previously collected data and presently collected data may be utilized to improve the accuracy of the model. A copy of the model is then sent to the content server, so that the server has instantaneous access to a digital version of the present 3D environment. The server copy of the model may be updated and improved at any time by incorporating more sensor data from sensing client devices. The model is used in the execution of virtual object visibility analyses. Collected environment data is also used by the client device to assist in location and orientation tracking (pose tracking). The pose (point-of-view position and orientation) of the device is used for synching the translations of the augmented elements displayed by the AR client with a users head movements. The pose information is sent to the server or calculated by the server using the environment model or other data to allow the server to estimate visibilities of elements of AR content from the user's viewpoint. From a user's point of view, real world objects such as tables, buildings, trees, doors, and walls can occlude AR content. This will happen whenever the depth of the AR content is farther away from the user than the real-world object but also in the same line of sight. True AR content containing high-resolution depth information allows for an enhanced sense of realism.

In one embodiment, the AR device used for viewing the AR content is equipped with sensors capable of producing depth information from the environment. A sensor, or combination of sensors, may include one or more sensors such as RGB-D cameras, stereo cameras, infrared cameras, lidar, radar, sonar, and any other sort of sensor known by those with skill in the art of depth sensing. In some embodiments, combinations of sensor types and enhanced processing methods are employed for depth detection. When the viewing session is initialized by the user, the viewing client reconstructs the environment model by collecting depth data from the environment.

During the reconstruction process executed on the client device, sensors collect point-cloud data from the environment as the user moves the device and sensors through the environment. Sensor observations with varying points of view are combined to form a coherent 3D reconstruction of the complete environment. Once the 3D reconstruction reaches a threshold level of completeness, the AR client proceeds to send the reconstructed model to the AR content server along with a request for a specific AR content. In exemplary embodiments, the level of completeness of the 3D reconstruction may be measured for example as the percentage of the surrounding area coverage, number of discrete observations, duration of sensing, etc. and any similar quality value that can be used as a threshold. 3D reconstruction of the environment may be carried out with any known reconstruction method, such as ones featured in KinectFusion™ or Point Cloud Library (PCL).

In one variation of the process, the client at the beginning of an AR viewing session starts to continuously stream RGB-D data to the server. The AR client then sends a content request. In this variation, the AR content server performs the 3D reconstruction process using the received RGB-D data stream and stores the reconstructed environment model. As the server constructs the per-client environment model, it also begins to modify the AR content by removing virtual elements that are occluded by the present environment. As the 3D reconstruction becomes more complete, the content removal processing becomes more accurate.

A user operating an AR client device may initiate the request for the AR session. The request is sent to the AR content server and indicates the specific content to user has selected. The AR content to be displayed may be defined as a weblink to the AR content server and reference to the specific AR content held within. Initializing an AR client may be handled automatically by an operating system based on the detection of the link type activated by the user. The client may be embedded within an application used to receive the content links, such as web browsers and mobile messaging applications. Once the user starts the AR session, the 3D reconstruction of the environment described previously is initialized.

After the reconstruction process, the client starts a pose tracking process. The objective of the pose tracking process is to estimate where the client device is and in which direction the client device is facing relative to the previously reconstructed environment. Pose tracking can be done using any known tracking technique and can be assisted using the reconstructed environment model and client device sensor data. In some embodiments, once the client device pose has been determined, the client sends the reconstructed environment model to the AR content server along with the determined pose and a request for specific AR content.

The AR content server receives the AR content request from the AR client and fetches the requested content from a content storage. The AR content server then modifies the requested AR content to remove redundant data. Content delivery optimization, in this case, refers to the process executed by the AR content server. During content delivery optimization parts of the requested AR content that would be rendered at positions that are not visible to the viewer are removed from the content. In AR, virtual elements of the AR content are preferably perceived as being a part of (or fusing with) the real world seen by the viewer. To enhance that perception of realism, embodiments disclosed herein replicate the appearance of physical objects blocking users' views to the virtual objects. By removing all the elements from the content that are occluded by real world elements, the size of the content can be reduced without causing any loss of quality that users would be able to observe. Depending on the requested content type, the AR content server uses slightly different content delivery optimization processes. In fact, even the client device may take advantage of further improvements based on the type of AR content it is requesting. Different approaches for optimizing light fields, immersive videos, and synthetic 3D scenes are described in the ensuing sections.

Light field data can include an array of sub-images captured concurrently at a scene from several different viewpoints. Based on the array of sub-images, new viewpoints between original viewpoints can be generated computationally. The array of sub-images may also be processed to enable refocusing of the compiled final images. Most relevantly, the array of sub-images may be used to extract depth information corresponding to the captured scene e.g., via an analysis of the parallax and disparity maps of the sub-images.

For light field optimization, the AR content server extracts depth information from the light field and aligns a light field depth map with the environment model received from the AR client. For each sub-image of the light field, the AR server transforms viewpoints of the combined light field depth map and the client environment model to match the viewpoint of the light field sub-image. For each pixel of the light field sub-image, the AR content server compares depth values from client's environment model to corresponding depth values extracted from the light field data. If the depth map of the light field has greater depth values than those from the client environment model, corresponding pixels in the light field sub-image are discarded as they are occluded by real-world objects and thus will not be visible to the client.

With immersive video, for which there is associated depth information available, optimization may be performed by comparing depth values of the immersive video to depth values of the environment relative to the tracked camera pose. For any content removal, the AR content server operates to re-render the video. During re-rendering, parts of the video data occluded by the real-world elements in the user's environment are discarded. These large discarded areas can be efficiently compressed with traditional video compression methods.

Synthetic 3D scenes, which include virtual 3D information, are optimized in some embodiments by executing visibility detection on the virtual 3D elements in view of the geometry captured from the real-world viewing environment. In the visibility detection, the visibility of the content from the users viewpoint is determined. Visibility detection can be executed per object or per each vertex of each object, depending on the geometric representation of the virtual AR element. In some embodiments, an object-level removal (as opposed to vertex-level removal) is performed where removing part of the object's geometry would cause the need for significant object data reorganization. This would stop a 3D rendering algorithm from using buffer objects for storing parts of the content as static entities in the GPU's memory. The modified AR content is sent to the AR client upon completion of the relevant content delivery optimization.

The AR client receives the modified AR content from the AR content server and displays it to the viewer. For displaying the content, the AR client determines device pose from the client device depth sensors. Based on the orientation information, a display process aligns a received content coordinate system with that of the user. After aligning the content, in some embodiments, a sub-process compares depth values received from the client device sensors with the depth values of the modified content received from the AR content server. Areas of the content that have larger depth values than the corresponding depth values in the client device depth sensor data can be discarded and not be rendered, as they would otherwise be rendered at a spatial position that is occluded by real physical elements in the environment. The AR content server has already removed the AR content elements occluded by elements present in the environment model sent by the client to the server, but this run-time depth comparison handles occlusion caused by dynamic elements and static elements missing from the environment model sent to the content server.

FIG. 1 is a visual overview of a method for AR content delivery in pre-captured environments, in accordance with at least one embodiment. Depicted in the visual overview is a user 100 wearing an AR headset client device 102. User 100 is in a real-world AR viewing location 104 that includes a large table 106. Client device within 102 begins to reconstruct the present environment via data collection cameras and sensors within the AR headset client device 102. Client 102 collects data about the shape and position of the table using the cameras and sensors in the AR headset and sends this data to an AR content server 108.

User 100 wishes to consume AR content depicting two virtual characters 110 and 112. The AR client sends a content request 114 to the AR content server 108. AR content server 108 performs a visibility analysis of the selected content. AR content server 108 concludes that, based on the users position and orientation with respect to the present environment, a top virtual character is visible 110 and a bottom virtual character 112 will be occluded by table 106.

The AR content server 108 then modifies the AR content by removing the bottom virtual character. Standard compression techniques may be employed to reduce the size of the modified frames. The modified content stream is then sent from the server to the user 100 for consumption.

One embodiment includes a process carried out by an AR headset client device 102. The process includes generating a digitally reconstructed 3D environment of a real-world AR viewing location using an AR client device 102. The process includes detecting an object in the digitally reconstructed 3D environment. The process also includes determining a depth and geometry of the object. The process also includes sending information indicating the depth and geometry of the object to an AR content server 108. The process also includes sending a request for AR content from the AR client to the AR content server 108. The process also includes receiving, at the AR client device 102, an AR content stream 116 from the AR content server 108, wherein the received AR content stream 108 has been filtered by the AR content server 108 to exclude AR content that would be occluded by the object 112.

FIG. 2 is a flow chart of a method, carried out by an AR client, for AR content delivery in pre-captured environments, in accordance with at least one embodiment. FIG. 2 depicts a process 200, including elements 202-210. At element 202 an AR client, such as client 102 determines a real-world AR viewing location. At element 204 the process 200 includes identifying and tracking a point-of-view position and orientation of an AR client, such as client 102 within the real-world AR viewing location 104. At element 206 the process 200 includes sending information indicating the point-of-view position and orientation to an AR content server 108. At element 208 the process 200 includes sending a request for AR content to the AR content server 108. At element 210 the process 200 includes receiving, at the AR client device 102, an AR content stream, such as stream 116, from the AR content server, wherein the received AR content stream, such as stream 116, has been filtered by the AR content server, such as server 108, to exclude AR content that is not visible in the real-world AR viewing location from the point-of-view position and orientation.

FIG. 3 is a flow chart of a method carried out by an AR content server for AR content delivery in pre-captured environments, in accordance with at least one embodiment. FIG. 3 depicts a process 300, including elements 302-310. At element 302 an AR content server, such as server 108, receives a request for AR content from an AR client such as client device 102. At element 304 the process 300 includes obtaining a digitally reconstructed 3D environment of a real-world AR viewing location, such as location 104. At element 306 the process 300 includes receiving a point-of-view position and orientation from an AR client in the real-world AR viewing location. At element 308 the process 300 includes comparing the requested AR content with the digitally reconstructed 3D environment and the point-of-view position and orientation to perform a visibility analysis on the requested AR content and modifying the requested AR content by removing parts not visible from the point-of-view position and orientation, as indicated by the visibility analysis. At element 310 the process 300 includes fulfilling the request for AR content by sending the modified AR content to the AR client.

In at least one embodiment, obtaining the digitally reconstructed 3D environment of the real-world AR viewing location includes obtaining the reconstructed 3D environment from data storage. In at least one embodiment, obtaining the digitally reconstructed 3D environment of the real-world AR viewing location includes obtaining the reconstructed 3D environment from the AR client. In at least one embodiment, obtaining the digitally reconstructed 3D environment of the real-world AR viewing location includes generating the reconstructed 3D environment using data from data storage and real-time data from the AR client device.

In at least one embodiment of the AR content server, modifying the requested AR content varies depending on the content type. In one such embodiment, the content type is a 3D scene and modifying the requested AR content includes (i) removing occluded 3D objects from the requested AR content, (ii) obtaining an update to the point-of-view position and orientation, and (iii) based on the updated point-of-view position and orientation, sending AR objects to the AR client that were earlier removed but are now visible. In another such embodiment, the content type is a light field and modifying the requested AR content includes (i) processing the light field content frame by frame to remove occluded parts, and (ii) re-packaging the remaining data for streaming. In yet another such embodiment, the content type is immersive video with depth data, and modifying the requested AR content and includes (i) removing parts of the video in which the digitally reconstructed 3D environment has smaller depth values than the depth data associated with the video, (ii) re-rendering frames, and (iii) re-package the video for streaming.

FIG. 4 is a sequence diagram of a method for AR content delivery in pre-captured environments, in accordance with at least one embodiment. For use as a further resource, the following paragraphs will contain an example traversal of the sequence diagram of FIG. 4.

A client device 102 reconstructs the present AR viewing location at Reconstruct environment 404. User 100 starts an AR viewing client 102 at step 406 and scans the present environment 408 with an AR headset, which can be coupled to the viewing client directly or wirelessly. The client device 102 may alternatively identify the present AR viewing location and send this information to an AR content server 108 that already has an environment model. Scanning and reconstructing the environment is useful for tracking purposes as well. In FIG. 4, when the digital reconstruction is complete, the user 100 is notified at step 410 “client ready”.

Then user 100 can initiate an AR content streaming (viewing) session as shown at step 412. The user 100 enters or selects a link for AR content 414 and gives this to the AR client 102. Upon reception of the link, the AR client conducts pose tracking 414 (though this step may be initialized at an earlier time). The AR client sends a content request 416 for the digitally reconstructed 3D environment, and the current AR client pose to an AR content server 108.

The AR content server 108 obtains, at fetch content 418, the requested AR content at step 420 from an AR content storage 402.

Content streaming and viewing 422 may commence after retrieval. The AR content server 108 optimizes the requested AR content 424 by removing elements that are occluded by the real-world environment. This may involve modifying frames of content, re-rendering the modified frames, etc. The AR content server 108 performs a visibility analysis (which the AR client could do as well) to determine what AR content would not be visible to user 100 using the digitally reconstructed 3D environment and the client pose. The optimized content 424 is then provided via optimized content stream 426 to AR viewer client 102 so that user 100 can see the displayed content 428.

At least one embodiment includes a process for digitally reconstructing an augmented reality (AR) viewing location using an AR client. The process also includes sending information describing the digitally reconstructed AR viewing location from the AR client to an AR content server. The process also includes sending a request for AR content from the AR client to the AR content server. The process also includes sending information describing a position and orientation of the AR client within the AR viewing location from the AR client to the AR content server. The process also includes determining, at the AR content server, a visibility of a requested AR content based on the received information describing the digitally reconstructed AR viewing location and the received information describing the position and orientation of the AR client. The process also includes modifying, at the AR content server, the requested AR content by removing parts of the requested AR content that are determined to be not visible. The process also includes sending the modified AR content from the AR content server to the AR client. The process also includes augmenting the AR viewing location with the modified AR content using the AR client.

FIG. 5 is a depiction of a user 500 and an example real-world AR viewing location 502, in accordance with at least one embodiment. FIG. 5 is a reference image that is used to aid the descriptions of FIGS. 6-10. FIG. 5 depicts user 500 in the example real-world AR viewing location. The viewing location 502 is a room that contains two open doorways, 504 and 506, a dresser 508, a couch 510, and a chair 512. User 500 scans the real-world AR viewing location with an AR headset 514.

FIG. 6 is a plan view of a digitally reconstructed 3D environment, in accordance with at least one embodiment. The user 600 scans the AR viewing location using an AR client and generates a digitally reconstructed 3D environment. The digital reconstruction includes the two open doorways, 602 and 604, the dresser 606, the couch 608, and the chair 610. FIG. 2 is a plan view of that reconstruction. The AR headset worn by user 600 determines its pose and sends the pose and the digital reconstruction to an AR content server 108.

FIG. 7 is a depiction of a requested AR content and the digitally reconstructed 3D environment of FIG. 6, in accordance with at least one embodiment. The user 600 has requested AR content that depicts nine stars 700 (e.g. in an AR planetarium application). A coordinate system of the AR content is aligned with the real-world viewing location using the digitally reconstructed 3D environment and the pose information. The alignment may be performed in various ways. For example, the alignment may be selected so as to minimize the amount of AR content (e.g. the number of stars) that would not be displayed due to obstructions. The alignment may be selected with user input, e.g. the alignment may be adjusted by the user until a preferred alignment is selected. The alignment may be selected based on other inputs, for example one or more accelerometers in the AR display device may be used to ensure that an “up” direction with respect to the AR content is aligned with the “up” direction in the AR viewing environment. In some embodiments, an alignment may be selected such that the direction a user is facing at the start of an AR session may be aligned with a preferred viewing direction of the AR content.

Based on the selected alignment, a display location of each element of AR content (e.g. a display location of each star) may be determined by transforming coordinates of those elements from the coordinate system of the AR content to the coordinate system of the 3D viewing environment using the selected alignment.

FIG. 8 is a depiction of a visibility analysis performed on the requested AR content of FIG. 7, in accordance with at least one embodiment. The AR content server 108 performs a visibility analysis using the digitally reconstructed 3D environment and the pose information. The AR content server 108 determines that four of the stars, 802, 804, 806 and 808 included in the original AR content would not be visible from the point of view of the user 600 and removes them from the content.

FIG. 9 is a depiction of a modified AR content and the digitally reconstructed 3D environment of FIG. 6, in accordance with at least one embodiment. The user has requested AR content that depicts nine stars, however the AR content server has modified the AR content and now only five stars are present in the modified data stream.

FIG. 10 is a depiction of the modified AR content of FIG. 9, as seen by the user of FIG. 5, in accordance with at least on embodiment. FIG. 10 depicts the real-world environment being augmented by the modified AR content. The 5 remaining stars, 1002, 1004, 1006, 1008 and 1010 are all visible. The 4 removed stars, 802, 804, 806 and 808 are not occluded by the walls, chair, etc, but are absent from the data stream altogether.

Exemplary embodiments disclosed herein are implemented using one or more wired and/or wireless network nodes, such as a wireless transmit/receive unit (WTRU) or other network entity.

FIG. 11 is a system diagram of an exemplary WTRU 1102, which may be employed as an AR client viewer in embodiments described herein. As shown in FIG. 11, the WTRU 1102 may include a processor 1118, a communication interface 1119 including a transceiver 1120, a transmit/receive element 1122, a speaker/microphone 1124, a keypad 1126, a display/touchpad 1128, a non-removable memory 1130, a removable memory 1132, a power source 1134, a global positioning system (GPS) chipset 1136, and sensors 1138. It will be appreciated that the WTRU 1102 may include any sub-combination of the foregoing elements while remaining consistent with an embodiment.

The processor 1118 may be a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Array (FPGAs) circuits, any other type of integrated circuit (IC), a state machine, and the like. The processor 1118 may perform signal coding, data processing, power control, input/output processing, and/or any other functionality that enables the WTRU 1102 to operate in a wireless environment. The processor 1118 may be coupled to the transceiver 1120, which may be coupled to the transmit/receive element 1122. While FIG. 11 depicts the processor 1118 and the transceiver 1120 as separate components, it will be appreciated that the processor 1118 and the transceiver 1120 may be integrated together in an electronic package or chip.

The transmit/receive element 1122 may be configured to transmit signals to, or receive signals from, a base station over the air interface 1116. For example, in one embodiment, the transmit/receive element 1122 may be an antenna configured to transmit and/or receive RF signals. In another embodiment, the transmit/receive element 1122 may be an emitter/detector configured to transmit and/or receive IR, UV, or visible light signals, as examples. In yet another embodiment, the transmit/receive element 1122 may be configured to transmit and receive both RF and light signals. It will be appreciated that the transmit/receive element 1122 may be configured to transmit and/or receive any combination of wireless signals.

In addition, although the transmit/receive element 1122 is depicted in FIG. 11 as a single element, the WTRU 1102 may include any number of transmit/receive elements 1122. More specifically, the WTRU 1102 may employ MIMO technology. Thus, in one embodiment, the WTRU 1102 may include two or more transmit/receive elements 1122 (e.g., multiple antennas) for transmitting and receiving wireless signals over the air interface 1116.

The transceiver 1120 may be configured to modulate the signals that are to be transmitted by the transmit/receive element 1122 and to demodulate the signals that are received by the transmit/receive element 1122. As noted above, the WTRU 1102 may have multi-mode capabilities. Thus, the transceiver 1120 may include multiple transceivers for enabling the WTRU 1102 to communicate via multiple RATs, such as UTRA and IEEE 802.11, as examples.

The processor 1118 of the WTRU 1102 may be coupled to, and may receive user input data from, the speaker/microphone 1124, the keypad 1126, and/or the display/touchpad 1128 (e.g., a liquid crystal display (LCD) display unit or organic light-emitting diode (OLED) display unit). The processor 1118 may also output user data to the speaker/microphone 1124, the keypad 1126, and/or the display/touchpad 1128. In addition, the processor 1118 may access information from, and store data in, any type of suitable memory, such as the non-removable memory 1130 and/or the removable memory 1132. The non-removable memory 1130 may include random-access memory (RAM), read-only memory (ROM), a hard disk, or any other type of memory storage device. The removable memory 1132 may include a subscriber identity module (SIM) card, a memory stick, a secure digital (SD) memory card, and the like. In other embodiments, the processor 1118 may access information from, and store data in, memory that is not physically located on the WTRU 1102, such as on a server or a home computer (not shown).

The processor 1118 may receive power from the power source 1134, and may be configured to distribute and/or control the power to the other components in the WTRU 1102. The power source 1134 may be any suitable device for powering the WTRU 1102. As examples, the power source 1134 may include one or more dry cell batteries (e.g., nickel-cadmium (NiCd), nickel-zinc (NiZn), nickel metal hydride (NiMH), lithium-ion (Li-ion), and the like), solar cells, fuel cells, and the like.

The processor 1118 may also be coupled to the GPS chipset 1136, which may be configured to provide location information (e.g., longitude and latitude) regarding the current location of the WTRU 1102. In addition to, or in lieu of, the information from the GPS chipset 136, the WTRU 1102 may receive location information over the air interface 1116 from a base station and/or determine its location based on the timing of the signals being received from two or more nearby base stations. It will be appreciated that the WTRU 1102 may acquire location information by way of any suitable location-determination method while remaining consistent with an embodiment.

The processor 1118 may further be coupled to other peripherals 1138, which may include one or more software and/or hardware modules that provide additional features, functionality and/or wired or wireless connectivity. For example, the peripherals 1138 may include sensors such as an accelerometer, an e-compass, a satellite transceiver, a digital camera (for photographs or video), a universal serial bus (USB) port, a vibration device, a television transceiver, a hands free headset, a Bluetooth® module, a frequency modulated (FM) radio unit, a digital music player, a media player, a video game player module, an Internet browser, and the like.

FIG. 12 depicts an exemplary network entity 1290 that may be used in embodiments of the present disclosure, for example as an AR content server or as AR content storage. As depicted in FIG. 12, network entity 1290 includes a communication interface 1292, a processor 1294, and non-transitory data storage 1296, all of which are communicatively linked by a bus, network, or other communication path 1928.

Communication interface 1292 may include one or more wired communication interfaces and/or one or more wireless-communication interfaces. With respect to wired communication, communication interface 1292 may include one or more interfaces such as Ethernet interfaces, as an example. With respect to wireless communication, communication interface 1292 may include components such as one or more antennae, one or more transceivers/chipsets designed and configured for one or more types of wireless (e.g., LTE) communication, and/or any other components deemed suitable by those of skill in the relevant art. And further with respect to wireless communication, communication interface 1292 may be equipped at a scale and with a configuration appropriate for acting on the network side—as opposed to the client side—of wireless communications (e.g., LTE communications, Wi-Fi communications, and the like). Thus, communication interface 1292 may include the appropriate equipment and circuitry (perhaps including multiple transceivers) for serving multiple mobile stations, UEs, or other access terminals in a coverage area.

Processor 1294 may include one or more processors of any type deemed suitable by those of skill in the relevant art, some examples including a general-purpose microprocessor and a dedicated DSP.

Data storage 1296 may take the form of any non-transitory computer-readable medium or combination of such media, some examples including flash memory, read-only memory (ROM), and random-access memory (RAM) to name but a few, as any one or more types of non-transitory data storage deemed suitable by those of skill in the relevant art could be used. As depicted in FIG. 12, data storage 1296 contains program instructions 1297 executable by processor 1294 for carrying out various combinations of the various network-entity functions described herein.

In the foregoing specification, specific embodiments have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present teachings.

The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.

Moreover in this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” “has”, “having,” “includes”, “including,” “contains”, “containing” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises, has, includes, contains a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element proceeded by “comprises . . . a”, “has . . . a”, “includes . . . a”, “contains . . . a” does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises, has, includes, contains the element. The terms “a” and “an” are defined as one or more unless explicitly stated otherwise herein. The terms “substantially”, “essentially”, “approximately”, “about” or any other version thereof, are defined as being close to as understood by one of ordinary skill in the art, and in one non-limiting embodiment the term is defined to be within 10%, in another embodiment within 5%, in another embodiment within 1% and in another embodiment within 0.5%. The term “coupled” as used herein is defined as connected, although not necessarily directly and not necessarily mechanically. A device or structure that is “configured” in a certain way is configured in at least that way, but may also be configured in ways that are not listed.

It will be appreciated that some embodiments may be comprised of one or more generic or specialized processors (or “processing devices”) such as microprocessors, digital signal processors, customized processors and field programmable gate arrays (FPGAs) and unique stored program instructions (including both software and firmware) that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the method and/or apparatus described herein. Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches could be used.

Accordingly, some embodiments of the present disclosure, or portions thereof, may combine one or more processing devices with one or more software components (e.g., program code, firmware, resident software, micro-code, etc.) stored in a tangible computer-readable memory device, which in combination form a specifically configured apparatus that performs the functions as described herein. These combinations that form specially programmed devices may be generally referred to herein “modules”. The software component portions of the modules may be written in any computer language and may be a portion of a monolithic code base, or may be developed in more discrete code portions such as is typical in object-oriented computer languages. In addition, the modules may be distributed across a plurality of computer platforms, servers, terminals, and the like. A given module may even be implemented such that separate processor devices and/or computing hardware platforms perform the described functions.

Moreover, an embodiment can be implemented as a computer-readable storage medium having computer readable code stored thereon for programming a computer (e.g., comprising a processor) to perform a method as described and claimed herein. Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a ROM (Read Only Memory), a PROM (Programmable Read Only Memory), an EPROM (Erasable Programmable Read Only Memory), an EEPROM (Electrically Erasable Programmable Read Only Memory) and a Flash memory. Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation.

The Abstract of the Disclosure is provided to allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus, the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter. 

1. A method comprising: obtaining a digitally reconstructed three-dimensional (3D) environment of an augmented reality (AR) viewing location; detecting a real-world object in the digitally reconstructed 3D environment; determining a depth and a geometry of the real-world object; sending a request for an augmented reality (AR) content stream to a server, the request including information indicating the depth and the geometry of the real-world object; receiving the AR content stream from the server, the AR content stream excluding AR content occluded by the real-world object.
 2. The method of claim 1, further comprising determining the AR viewing location using one or more of global positioning system (GPS) data, wireless data, and image recognition.
 3. The method of claim 1, wherein the digitally reconstructed 3D environment is obtained via one or more of: a stored previous AR session; a combination of stored data with data collected in real-time; or a point cloud of depth data.
 4. The method of claim 1, wherein the digitally reconstructed 3D environment is obtained via scanning the AR viewing location by inspecting it from several viewpoints.
 5. The method of claim 1 further comprising: tracking a point-of-view position and an orientation within the digitally reconstructed 3D environment.
 6. The method of claim 1, wherein the information indicating the depth and the geometry of the real-world object includes one or more of: real-time raw sensor data; a depth map of the object; or an RGB-D data stream.
 7. The method of claim 1, wherein the type of AR content requested is immersive video, and the information indicating the depth and the geometry of the at least one real-world object is formatted as a spherical depth map of the real-world AR viewing location.
 8. An augmented reality (AR) content server comprising: a processor; a communication interface; and non-transitory data storage; the AR content server configured to: receive a request for AR content via the communication interface; obtain, from the data storage, the requested AR content; obtain a digitally reconstructed three-dimensional (3D) environment of an AR viewing location; receive via the communication interface a point-of-view position and orientation from within AR viewing location including information indicating the depth and the geometry of a real-world object occluding visibility; perform a visibility analysis via a comparison of the requested AR content with the digitally reconstructed 3D environment and the point-of-view position and orientation; and modify the requested AR content by removing data associated with one or more objects not visible from the point-of-view position and orientation according to the visibility analysis.
 9. The AR content server of claim 8, wherein the digitally reconstructed 3D environment is obtained from one or more of: the data storage; an augmented reality (AR client); or a combination of the data storage and the AR client.
 10. The AR content server of claim 8, wherein the modification of the requested AR content is a function of a content type of the requested AR content, the content type including one or more of: a three-dimensional (3D) scene; a light field; or immersive video with depth data.
 11. The AR content server of claim 8, wherein the modified requested AR content includes: an insert of previously removed three-dimensional (3D) objects within the requested AR content based on an updated point-of-view position and orientation.
 12. The AR content server of claim 10, wherein the visibility analysis includes: identifying where the digitally reconstructed 3D environment has smaller depth values than the depth data associated with the requested AR content.
 13. A method comprising: receiving a request for an augmented reality (AR) content video stream; obtaining, from a data storage, the requested AR content video stream; obtaining a digitally reconstructed 3D environment of a real-world AR viewing location; receiving a point-of-view position and orientation from an AR client in the real-world AR viewing location including information indicating the depth and the geometry of a real-world object occluding visibility; analyzing the digitally reconstructed 3D environment and the point-of-view position and orientation to determine whether the requested AR content video stream includes one or more objects occluded in the digitally reconstructed 3D environment; and removing the one or more objects that are occluded in the digitally reconstructed 3D environment.
 14. The method of claim 13 further comprising: sending the modified AR content video stream to the AR client.
 15. The method of claim 14 wherein the analyzing the digitally reconstructed 3D environment and the point-of-view position and orientation includes: determining a location of an AR display device associated with the AR client; identifying one or more physical objects in the digitally reconstructed 3D environment as along a line of sight determined from the point-of-view position and orientation of the AR display device; and determining whether the one or more objects in the AR content video stream are occluded by the one or more physical objects based on the line of sight.
 16. The method of claim 14 wherein the analyzing the digitally reconstructed 3D environment and the point-of-view position and orientation includes: comparing depth values of the digitally reconstructed 3D environment with depth values in the AR content video stream; and discarding portions of the AR content video stream with larger depth values than the corresponding depth values in the digitally reconstructed 3D environment. 